package cn.lingyangwl.agile.infra.gen.service;

import cn.lingyangwl.agile.infra.gen.manager.*;
import cn.lingyangwl.agile.infra.gen.model.entity.*;
import cn.lingyangwl.agile.infra.gen.model.rqrs.*;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;

import java.util.List;
import java.util.Map;

/**
 * @author shenguangyang
 */
public interface IGenTableService extends IService<GenTable> {
    Map<String, String> previewCode(List<Long> tableIds);

    /**
     * 从excel中导入表数据
     */
    void importTableFromExcel();

    IPage<GenTableDto> pageGenTable(GenTablePageReq req);

    /**
     * 从word中导入表数据
     */
    List<ImportTableResp> importWordTable(ImportDocumentTableResp req, WordTableManager wordTableManager);

    /**
     * 导入数据库中的表
     */
    List<ImportTableResp> importDbTable(ImportDbTableReq req);

    void syncDbTable(Long id);

    void deleteGenTableByIds(List<Long> tableIds);

    GenTableDto getGenTableRespByTableId(Long tableId);

    void saveOrUpdateGenTableInfo(GenTableInfoSaveReq req);

    GenInfoResp getGenInfo(Long tableId);

    GenTable updateGenTable(GeneratorReq req);
}
